///////////////////////////////////////////////////////////////////////////////////////////////////
/// \file formic/psi3/interface.h
///
/// \brief   header file for accessing data from PSI3
///
///////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef FORMIC_PSI3_INTERFACE_HEADER
#define FORMIC_PSI3_INTERFACE_HEADER

#include <vector>
#include <complex>

namespace formic {

  class InputBase;

  void get_psi3_orbs_per_irrep(const formic::InputBase &, std::vector<int> &);
  void get_psi3_ints(const formic::InputBase &, double &,               double * const,               double * const,               double * const);
  void get_psi3_ints(const formic::InputBase &, double &, std::complex<double> * const, std::complex<double> * const, std::complex<double> * const);
  void unpack_psi3_lower_triangle(const int n, const double * const lt, double * const oei);

}

#endif
